#ifndef _EBN_PROPOSITION_H_
#define _EBN_PROPOSITION_H_

#include <string>

class CEbnWorldState;

using namespace std;

class CEbnProposition
{
public:	
    CEbnProposition(CEbnWorldState * worldState, bool positive = true);
    ~CEbnProposition(void);

    CEbnWorldState * getWorldState();
    bool isPositiveWorldState();

    bool isSame(CEbnProposition * proposition);
    bool isIdentical(CEbnProposition * proposition);
    bool isInverse(CEbnProposition * proposition);

    float getValue();
    string getName();

    float getWeight(void);
    void setWeight(float weight);

    void setWorldState();

protected:
    
    CEbnWorldState * mpWorldState;
    bool mPositiveWorldState;  // Sign of world state

    float mWeight;
};

#endif
